this._group.add_child(this.viewSelector);
this._group.add_actor(this._thumbnailsSlider);
- layout.connect('allocation-changed', this._updateWorkspacesGeometry.bind(this));
-
Main.overview.connect('showing', this._updateSpacerVisibility.bind(this));
this.connect('destroy', this._onDestroy.bind(this));
this._workspaceAdjustment.value = activeIndex;
}
- _updateWorkspacesGeometry() {
- let [x, y] = this.get_transformed_position();
- let [width, height] = this.get_transformed_size();
- let geometry = { x, y, width, height };
-
- let spacing = this.get_theme_node().get_length('spacing');
- let dashWidth = this._dashSlider.getVisibleWidth() + spacing;
- let thumbnailsWidth = this._thumbnailsSlider.getNonExpandedWidth() + spacing;
-
- geometry.width -= dashWidth;
- geometry.width -= thumbnailsWidth;
-
- if (this.get_text_direction() == Clutter.TextDirection.LTR)
- geometry.x += dashWidth;
- else
- geometry.x += thumbnailsWidth;
-
- this.viewSelector.setWorkspacesFullGeometry(geometry);
- }
-
_setVisibility() {
// Ignore the case when we're leaving the overview, since
// actors will be made visible again when entering the overview
this._monitorIndex = monitorIndex;
- this._fullGeometry = null;
-
this._inDrag = false;
this._windowDragBeginId = Main.overview.connect('window-drag-begin', this._dragBegin.bind(this));
this._windowDragEndId = Main.overview.connect('window-drag-end', this._dragEnd.bind(this));
this._setReservedSlot(null);
}
- setFullGeometry(geom) {
- this._fullGeometry = geom;
- }
-
vfunc_allocate(box) {
this.set_allocation(box);
this._syncActualGeometryLater = 0;
this._actualGeometry = null;
- this._fullGeometry = null;
this._inWindowDrag = false;
this._gestureActive = false; // touch(pad) gestures
Main.layoutManager.overviewGroup.add_actor(view);
}
- if (this._fullGeometry)
- this._syncWorkspacesFullGeometry();
if (this._actualGeometry)
this._syncWorkspacesActualGeometry();
}
});
}
- // This geometry should always be the fullest geometry
- // the workspaces switcher can ever be allocated, as if
- // the sliding controls were never slid in at all.
- setWorkspacesFullGeometry(geom) {
- this._fullGeometry = geom;
- this._syncWorkspacesFullGeometry();
- }
-
- _syncWorkspacesFullGeometry() {
- if (!this._workspacesViews.length)
- return;
-
- let monitors = Main.layoutManager.monitors;
- for (let i = 0; i < monitors.length; i++) {
- let geometry = i == this._primaryIndex ? this._fullGeometry : monitors[i];
- this._workspacesViews[i].setFullGeometry(geometry);
- }
- }
-
_updateWorkspacesActualGeometry() {
const [x, y] = this.get_transformed_position();
const width = this.allocation.get_width();